package com.gexin.controller.commom;

import java.util.HashMap;
import java.util.Map;
import com.gexin.common.model.ApiResponse;
import com.gexin.common.utils.MessageUtils;
import com.gexin.common.utils.StringUtil;
import com.jfinal.core.Controller;
import com.jfinal.ext.route.ControllerBind;

/**
 * 发送短信的验证码
 * @author 肖得明
 */
@ControllerBind(controllerKey = "/api/ver/code", viewPath = "jsp/demo/")
public class VerificationCodeController extends Controller {

	/**
	 * 获取验证码
	 */
	public void getVerCode() {
		String phone = getPara("phone");
		String token = getPara("token");
		String code =   ("code");
		Map<String, Object> map = new HashMap<String, Object>();
		if (StringUtil.isBlank(phone) || StringUtil.isBlank(token) || StringUtil.isBlank(code)) {
			renderJson(new ApiResponse(false, "参数不能为空！"));
			return;
		}
		if (MessageUtils.verify(token, code)) {
			map.put("yzm_state", true);
			String random_code = StringUtil.Random(4); // 发送的验证码
			ApiResponse cmd = MessageUtils.SendCode_New(phone, random_code, MessageUtils.loginId, getRequest());
			cmd.setData(map);
			renderJson(cmd);
		} else {
			map.put("yzm_state", false);
			renderJson(new ApiResponse(false, "验证码不正确", map));
		}
	}

	// 保存数据的时候校验一下 手机验证码是否正确
	public void save_check() {
		String phone = getPara("phone");
		String vercode = getPara("vercode");
		if (!MessageUtils.CheckCode(phone, vercode, MessageUtils.loginId) == true) {
			renderJson(new ApiResponse(false, "验证码输入错误！"));
			return;
		}

		// ......开始编写自己的逻辑代码
		// 为了安全 逻辑走完以后 一定记得删除这个验证码
		MessageUtils.delCode(phone, MessageUtils.loginId);
		renderJson(new ApiResponse(true, "校验通过!"));
	}

	public void demo() {
		render("yzm.html");
	}
}
